package com.misty.factory_pattern.client;

/**
 * 工厂方法模式是典型的解耦框架。高层模块值需要知道产品的抽象类，其他的实现类都不用关心，
 * 符合迪米特法则，我不需要的就不要去交流；
 * 也符合依赖倒置原则，只依赖产品类的抽象；
 * 当然也符合里氏替换原则，使用产品子类替换产品父类，
 */

import org.junit.Test;

/**
 * 该通用代码是一个比较实用、易扩展的框架，读者可以根据实际项目需要进行扩展。
 */
public class Demo {
    @Test
    public void demo() {
        Creator creator = new ProductCteator();
        Product product = creator.createProduct(Product1.class);
        product.method();
        product.method1();
    }
}
